<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        
        <link rel="stylesheet" type="text/css" href="../../css/guide.css" />        
        <script type="text/javascript">var basepath = '../../'; var lang = 'fr';</script>        
        <script type="text/javascript" src="../../js/loader.js"></script>        
    </head>
    <body>     
        <h1>Configuration</h1>
        <p>
            La configuration de PHP-Oxygen se fait via un fichier .ini dans le dossier webapp/config. 
            Ce dernier peut être différent en fonction du contexte défini (dev, preprod, prod, etc...).
        </p>
        <h2>Contextualisation</h2>
        <p>
            Il existe plusieurs méthodes pour utiliser un fichier différent par contexte. 
            Le principe est de nommer le fichier à appeler.
        </p>
        <p>
            Exemple : si la valeur de contexte définie est "preprod" le fichier chargé sera webapp/config/preprod.ini
        </p>
        
        <h3>Définition manuelle en PHP</h3>
        <p>
            La définition manuelle se fait avant le chargement du framework (bootstrap.php), cela est surtout nécessaire 
            pour l'utilisation de PHP-Oxygen en ligne de commande.
        </p>
        <p>La définition se fait en attribuant une valeur à la constante APP_ENV</p>
        <p>Exemple pour définir preprod comme contexte :</p>
        <php>
            // va charger /webapp/config/preprod.ini
            define('APP_ENV', 'preprod');
            
            // initialisation du framework
            require_once('../oxygen/bootstrap.php');
        </php>
        
        <h3>Définition dans le vhost Apache</h3>
        <p>
            Le contexte peut être défini directement dans la configuration du vhost Apache. 
            Cette solution permet d'utiliser le même contexte sur plusieurs projets si vous utilisez des alias de vhost.
        </p>
        <p>Pour définir le contexte on défini une variable d'environnement APP_ENV.</p>
        <p>Exemple pour définir preprod comme contexte :</p>
        <apacheconf>
            &lt;VirtualHost>
                Servername example.com
                DocumentRoot /var/example.com/www
                SetEnv APP_ENV "preprod"
            &lt;/VirtualHost&gt;
        </apacheconf>
        
        <h3>Définition dans l'htaccess</h3>
        <p>
            La définition du contexte dans l'htaccess se fait quasiment de la même façon que dans le vhost, c'est à dire 
            en définissant la variable d'environnement APP_ENV
        </p>
        <p>Le fichier .htaccess se trouve dans le dossier www.</p>
        <p>Exemple pour définir preprod comme contexte :</p>
        <htaccess>
            SetEnv APP_ENV "preprod"
        </htaccess>
        
        <h2>Récupération des valeurs</h2>
        <p>
            La récupération des valeurs contextualisée se fera via la classe <a href="../classes/config.html">Config</a>
        </p>
        
        <h2>Contenu de la configuration</h2>
        <p>
            Le contenu du fichier de configuration est clair et commenté. Chaque partie est expliquée en détail dans la 
           documentation des classes concernées.
        </p>
        <ul>
            <li><a href="../classes/db/configuration.html">Configuration de l'accès à la base de données</a></li>
            <li><a href="../classes/date.html">Configuration du fuseau horaire</a></li>
            <li><a href="../classes/cache.html">Configuration du cache</a></li>
            <li><a href="../general/urls.html#config">Configuration des routes (URLs)</a></li>
            <li><a href="../classes/auth.html">Configuration de l'authentification</a></li>
            <li><a href="../classes/session.html">Configuration des données de session</a></li>
            <li><a href="../general/smartyplugins.html#asset">Configuration de la gestion des assets</a></li>
        </ul>
    </body>            
</html>